// 为数组做类型的注解，两种形式
// 如果数组的元素的数据类型为基本的数据类型
// let arr = [1, 2, 3]
// let arr: number[] = [ 1, 2, 3] // 元素类型后面接上 []
// let arr1: Array<number> = [ 4, 5, 6] // 泛型，Array<元素类型>

// 如果数组的元素是对象，先把对象设置为 接口说明数据类型，然后按照数组的特点写
interface IPer {
  id: number
  username: string
}
// let arr: IPer[] = [
//   {
//     id: 1,
//     username: '吴大勋'
//   },
//   {
//     id: 2,
//     username: '班长'
//   },
//   {
//     id: 3,
//     username: '张子豪'
//   }
// ]
// let arr: Array<IPer> = [
//   {
//     id: 1,
//     username: '吴大勋'
//   },
//   {
//     id: 2,
//     username: '班长'
//   },
//   {
//     id: 3,
//     username: '张子豪'
//   }
// ]

// 如果是多维数组  -- any 代表任意类型
// let arr: Array<any> = [ [1, 2], [3, 4]]
// let arr1: any[] = [ [1, 2], [3, 4]]
let arr: Array<Array<number>> = [[1, 2], [3, 4]]
let arr1: Array<number[]> = [[1, 2], [3, 4]]
let arr2: number[][] = [[1, 2], [3, 4]]